// 3.2 封装的是具体的接口请求方法：
// 注：每个方法只负责请求一个url地址.
import myAxios from '@/utils/request.js'
// 到这,下步进行 [注册和登录]页面准备.

// 6.3 封装注册接口：
export const getRegister = ({ username, password, repassword }) => {
  return myAxios.post('/api/reg', {
    username,
    password,
    repassword
  })
}

// 7.6 封装登录接口：
export const getLogin = ({ username, password }) => {
  return myAxios.post('/api/login', {
    username,
    password
  })
}

// 9.合并后的代码 ---------------------------
/**
 * 获取-用户基础资料
 * @returns Promise对象
 */
// 9.6 封装获取用户信息接口：
// 31.1：
export const getUserInfoAPI = () => {
  return myAxios({
    url: '/my/userinfo'
    // → 请求头附带token写到了请求拦截器下了.
  })
}

/**
 * 获取-侧边栏菜单数据
 * @returns Promise对象
 */
// 10.2 封装获取侧边栏菜单数据接口：
export const getMenusAPI = () => {
  return myAxios({
    url: '/my/menus'
  })
}

// 13.2 封装获取[文章分类]的数据接口：
export const getArtCateList = () => {
  // 细节6：GET 简写下也可以忽略不写(get默认的)
  return myAxios('/my/cate/list')
}

// 14.1 封装添加[文章分类]的数据接口：
export const addArtCateAPI = ({ cate_name, cate_alias }) => {
  return myAxios.post('/my/cate/add', {
    cate_name,
    cate_alias
  })
}

// 15.1 封装修改[文章分类]的数据接口：
export const updateArtCateAPI = ({ id, cate_name, cate_alias }) => {
  return myAxios.put('/my/cate/info', {
    id,
    cate_name,
    cate_alias
  })
}

// 16.1 封装删除[文章分类]的数据接口：
export const removeArtCateAPI = (id) => {
  return myAxios.delete('/my/cate/del', {
    params: {
      id
    }
  })
}

// 22.1 准备好[发布文章]的发布数据接口：
export const pubArticleAPI = (fd) => {
  return myAxios.post('/my/article/add', fd)
}

// 23.1 准备获取[文章列表]的数据接口：
export const getArtListAPI = ({ pagenum, pagesize, cate_id, state }) => {
  return myAxios({
    url: '/my/article/list',
    params: {
      pagenum,
      pagesize,
      cate_id,
      state
    }
  }
  )
}

// 28.2 准备获取[文章详情]的接口：
export const getArticleInfo = (id) => {
  return myAxios({
    url: '/my/article/info',
    params: {
      id
    }
  })
}

// 29. 准备[删除文章]的接口：
export const delArticle = (id) => {
  return myAxios({
    url: '/my/article/info',
    method: 'DELETE',
    params: {
      id
    }
  })
}

// 31.1 准备获取[基本资料]的接口 ↑

// 32.3 准备修改[基本资料]的接口:
export const updateUserInfo = ({ id, username, nickname, email, user_pic }) => {
  return myAxios({
    url: '/my/userinfo',
    method: 'PUT',
    data: {
      id,
      username,
      nickname,
      email,
      user_pic
    }
  })
}

// 36.1 准备更新[用户头像]的接口：
export const updateUserAvatar = (avatar) => {
  return myAxios({
    url: '/my/update/avatar',
    method: 'PATCH',
    data: {
      avatar
    }
  })
}

// 39.1 准备更新[用户密码]的接口：
export const updateUserPwd = ({ old_pwd, new_pwd, re_pwd }) => {
  return myAxios({
    url: '/my/updatepwd',
    method: 'PATCH',
    data: {
      old_pwd,
      new_pwd,
      re_pwd
    }
  })
}
